草庐IT

python - 计算数据结构的 md5 哈希

全部标签

ruby - 如何更改哈希值?

我想用value.some_method替换散列中的每个value。例如,给定一个简单的散列:{"a"=>"b","c"=>"d"}`每个值都应该是.upcased,所以它看起来像:{"a"=>"B","c"=>"D"}我尝试了#collect和#map但总是只取回数组。有没有一种优雅的方式来做到这一点?更新该死,我忘了:散列在一个实例变量中,不应更改。我需要一个具有更改值的新散列,但不希望显式定义该变量然后循环填充它的散列。像这样的东西:new_hash=hash.magic{...} 最佳答案 my_hash.each{|k,v

ruby - 理想的 Ruby 项目结构

我正在对ruby​​(非Rails/merb/等)项目的理想项目结构进行概述/澄清。我猜是这样app/bin/#Filesforcommand-lineexecutionlib/appname.rbappname/#ClassesandsoonRakefile#RunningtestsREADMEtest,spec,features/#Whichevermeansoftestingyougoforappname.gemspec#Ifit'sagem我是不是搞错了什么?我错过了哪些部分? 最佳答案 我认为这非常准确。默认情况下,Rub

Ruby 将对象转换为哈希

假设我有一个Gift对象,其中包含@name="book"&@price=15.95。将其转换为Ruby而非Rails中的哈希{name:"book",price:15.95}的最佳方法是什么(尽管也可以随意给出Rails的答案)? 最佳答案 就说(当前对象).attributes.attributes返回任何object的hash。而且它也更干净。 关于Ruby将对象转换为哈希,我们在StackOverflow上找到一个类似的问题: https://stac

ruby-on-rails - 删除数据库表中的所有记录

如何在RubyonRails应用程序中删除我的一个数据库表中的所有记录? 最佳答案 如果您正在寻找一种无需SQL的方法,您应该能够使用delete_all。Post.delete_all或有条件Post.delete_all"person_id=5AND(category='Something'ORcategory='Else')"参见here获取更多信息。删除记录时没有先加载它们,这使得速度非常快,但会破坏计数器缓存等功能,这些功能依赖于在删除时执行的Rails代码。 关于ruby-o

arrays - 如何在 ruby​​ 中对哈希数组进行排序

我有一个数组,每个元素都是一个包含三个键/值对的散列::phone=>"2130001111",:zip=>"12345",:city=>"sometown"我想按zip对数据进行排序,以便同一区域中的所有phone都在一起。Ruby是否有简单的方法来做到这一点?will_paginate可以对数组中的数据进行分页吗? 最佳答案 简单:array_of_hashes.sort_by{|hsh|hsh[:zip]}注意:当使用sort_by时,您需要将结果分配给一个新变量:array_of_hashes=array_of_hashes

ruby - 计算两个日期之间的天数

如何计算这两个日期之间的天数?start_date=Date.parse"2012-03-0214:46:21+0100"end_date=Date.parse"2012-04-0214:46:21+0200" 最佳答案 使用日期(和日期时间)类,您可以执行(end_date-start_date).to_i以获得天数差异。 关于ruby-计算两个日期之间的天数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

ruby-on-rails - 你能在 Rails 中获取数据库用户名、密码、数据库名称吗?

我正在编写一个rake任务,它在Rails/ActiveRecord之外执行一些数据库工作。有没有办法获取database.yml中定义的当前环境的数据库连接信息(主机、用户名、密码、数据库名称)?我想得到它,这样我就可以用它来像这样连接......con=Mysql.real_connect("host","user","pw","current_db") 最佳答案 在Rails中,您可以创建一个配置对象并从中获取必要的信息:config=Rails.configuration.database_configurationhost

ruby - 如何交换哈希中的键和值

如何交换哈希中的键和值?我有以下哈希:{:a=>:one,:b=>:two,:c=>:three}我想转换成:{:one=>:a,:two=>:b,:three=>:c}使用map似乎相当乏味。有更短的解决方案吗? 最佳答案 Ruby有一个Hash辅助方法,让您可以将Hash视为倒置的(本质上,通过让您通过值访问键):{a:1,b:2,c:3}.key(1)=>:a如果你想保留反转哈希,那么Hash#invert应该适用于大多数情况:{a:1,b:2,c:3}.invert=>{1=>:a,2=>:b,3=>:c}但是...如果您有

ruby - 如何按数值对 Ruby 哈希进行排序?

我有一个计数器哈希,我正试图按计数对其进行排序。我遇到的问题是默认的Hash.sort函数像字符串一样对数字进行排序,而不是按数字大小排序。即给定哈希:metrics={"sitea.com"=>745,"siteb.com"=>9,"sitec.com"=>10}运行这段代码:metrics.sort{|a1,a2|a2[1]a1[1]}将返回一个排序数组:['siteb.com',9,'sitea.com',745,'sitec.com',10]尽管745比9大,但9将首先出现在列表中。当试图显示谁拥有最多时,这让我的生活变得困难。:)关于如何按数值大小对散列(甚至数组)进行排序有

ruby - 为什么在 Ruby 中使用符号作为哈希键?

很多时候人们使用符号作为Ruby哈希中的键。与使用字符串相比有什么优势?例如:hash[:name]对比hash['name'] 最佳答案 长话短说:使用符号不仅可以节省比较时间,还可以节省内存,因为它们只存储一次。Ruby符号是不可变的(无法更改),这使得查找内容变得更加容易简短(大概)回答:使用符号不仅可以节省比较时间,还可以节省内存,因为它们只存储一次。Ruby中的符号基本上是“不可变字符串”..这意味着它们无法更改,并且它意味着在整个过程中多次引用相同的符号源代码,总是存储为相同的实体,例如具有相同的对象ID。另一方面,字符